﻿#pragma once

class keyboard
{
private:
	//체크할 이벤트
	SDL_Event * key_event;
	//입력받은 문자열을 보관
	std::wstring input_str;
	unsigned int max_length;
public:
	keyboard(void);
	~keyboard(void);

	bool set_shift_key;
	//유니코드 입력가능구분(0 불가능, 1 가능)
    int unicode_input;
	//한글 / 영어 입력상태 구분 (1 영어 -1 한글)
	int change_eh;

	//문자열 입력을 입력받아 반환
	void get_input();

	//문자열을 소거
	void clear();

	//한/영 입력상태 확인(true=영어, false= 한글)
	bool get_enghan();

	//단순 보관된 키입력값 반환
	std::wstring get_input_string();

	//키입력 최대값
	unsigned int get_maxlength();
	void set_maxlength(int input_max);
	bool init(SDL_Event * event);

	int cho_to_jong(int in_cho);
	int jong_to_cho(int in_jong);
	int keyboard::remain_jong(int in_jong);
	std::wstring compatibility_to_normal_jamo(std::wstring input_key);
	std::wstring abc_to_compatibility_koran_jamo(Uint16 input_key);
	std::wstring keyboard::normal_jamo_to_compatibility(std::wstring input_key);
};
